package stringbuffer;

import org.junit.Test;

/**
 * @author : DuJiabao
 * @Date : 2021/1/21 11:09
 * @Project : java_learning
 * @File : null.java
 * @Desc :
 */

/**
 * StringBuffer和StringBuilder相似，只是StringBuild是线程不安全的，效率更加高
 */
public class StringBufferTest {
    @Test
    public void test() {
        StringBuffer stringBuffer = new StringBuffer("你好世界");
        System.out.println(stringBuffer);
//        实现字符串拼接
        stringBuffer.append("hello world");
        System.out.println(stringBuffer);
//        删除字符串某部分 左闭右开
        stringBuffer.delete(3, 5);
        System.out.println(stringBuffer);
//        替换指定位置的内容
        stringBuffer.replace(3, 5, "世界");
        System.out.println(stringBuffer);
//        指定位置插入字符串
        stringBuffer.insert(3, "你");
        System.out.println(stringBuffer);
//        字符串翻转
        stringBuffer.reverse();
        System.out.println(stringBuffer);
//        子字符串在字符串中的位置
        System.out.println(stringBuffer.indexOf("界世"));
//        提取子字符串
        System.out.println(stringBuffer.substring(1, 3));
//        字符串长度
        System.out.println(stringBuffer.length());
//        提取某个字符
        System.out.println(stringBuffer.charAt(3));
//        设置某个字符的值
        stringBuffer.setCharAt(3, 'l');
        System.out.println(stringBuffer);
    }

    @Test
    public void test2() {
        String str = null;
        StringBuffer sb = new StringBuffer();
        sb.append(str);
        System.out.println(sb.length());//
        System.out.println(sb);//
        StringBuffer sb1 = new StringBuffer(str);
        System.out.println(sb1);//
    }
}
